Small, focused plugins built for my own MZ project and cleaned up to share. Each is a single
.js file — download it, drop it in your project's js/plugins/, and enable it in the
Plugin Manager. Free for commercial & non-commercial use, no credit required.
.js
no credit required
MZ
On-screen enemies that chase the player within a "home" zone, then give up and walk back when you escape — an idle → chase → return state machine. Built for games with visible (non-random) encounters.
<Leash> + optional <Sight: 6>, <Leash Range: 8>,
<Home Region: 12>, <Chase Speed: 5>, <Give Up Balloon>.Swaps an actor's face index and portrait filename based on current HP %, so characters show hurt / bloodied art as they take damage — in menus and (with MainMenuCore/BattleCore) portraits.
<Face Index Override: N>, <Portrait Suffix Override: _hurt>,
<No HP Face Swap>.Plays a sound as each character draws in message windows — a typewriter "voice." Configurable SE with volume/pitch variance, interval, and skip-spaces/punctuation. Per-actor and named (NPC) voices.
<Text Sound: file> or a name in the params, then switch voices inline with
\Voice[3] (actor) or \Voice[happy] (named). \Voice[-1] mutes.A subtle GPU fragment-shader plasma that appears behind your windows on the map while a control switch is ON, and fades out when it's OFF. Built for an opening "void" scene but works for any dream/limbo mood.
Sets the thickness of the outline drawn behind all in-game text, from one setting — bolder for a
chunkier look, a hairline for subtle, or 0 to remove it entirely. Optional outline-color override too.
Outline Width in px (engine default is 3;
0 = none) and an optional Outline Color.Shows each actor's pronouns under their name in the menu. A small, friendly touch for character-driven and inclusive games.
<Pronouns: they/them> (or she/her, he/him, she/they, any text).Adds a %t placeholder to a skill or item's Message 1 / Message 2 lines, so the
use-text can name the target ("Aida glares at %t.") instead of only the user. Vanilla-compatible.
%t anywhere in the skill/item Message fields;
mixes freely with the normal %1 user placeholder.Keeps the battle log on screen so lines build up into a running history instead of clearing after each action — a classic, readable combat feel. Works in vanilla MZ and with VisuMZ BattleCore.
Plays several looping BGM stems in perfect sync and fades each layer in/out by switch, variable, or party size — adaptive music that grows. A hub theme can gain an instrument each time you recruit someone.
audio/bgm, define a Track
with one Layer per stem + its audible condition, then call Play layered BGM. Saves/restores in sync.Playtest-only: reload all graphics with a single keypress, so you can edit a sprite or tile in your art program and see it update in-game without restarting the test.
Pins a looping sound to an event so it has a place — it swells as the player walks toward it and pans left/right as you pass, fading to silence at the edge of its radius. Perfect for a river, a fire, a crowd.
<Ambient SE: name, radius, volume, pitch> (radius in tiles). Page-driven, so a Self Switch
can start/stop it; it auto-stops when you leave the map.Plays surface-specific footstep SE on a smooth, frame-timed cadence while the player walks (and a faster one while dashing), picking the sound by terrain tag or region. Random sample variations kill the robotic repeat.
Step1…StepN for variations. Silence a map with <NoFootsteps> or a mute switch.Draw maps as full painted images — a ground layer the characters walk on and an overlay they pass behind — with region-painted collision. Supports drifting layers, animated frames, shade tints and per-event lights.
<Parallax Ground: name>, <Parallax Overlay: name>,
<Region Wall: ids>, plus drift / shade / footstep tags. Paint walls with a region in the editor.Draw your character sheets at 2× (or any multiple) and tag the filename — the plugin renders them at the matching fraction in-game, so the file on disk stays your full-size master and there's no downscaled copy to overwrite.
%Nx in the sheet name
($Aida%2x.png → shown at 0.5). Feet stay planted; multiplies onto VisuMZ EventsMoveCore
<Scale>. Place below EventsMoveCore.Drive an event's character-frame animation from a sequence you author, at a speed you set in frames — clean forward cycles, two-frame loops, a one-shot reveal that holds, or treat the whole 12-cell sheet as one animation.
<Loop Frames: n>, <Reveal Frames: n>, or
<Frame Sequence: a,b,c @ n> (add once to hold on the last). Comments are per-page, so a tagged page triggers it.Turn a skill into a field "gesture": when used outside battle, a tagged skill loops a character animation on the player (a wave, a dance, an emote) until you move or press a button — driven by notetags, no script.
<Gesture …> and point its Common Event
effect at a "Gesture Runner" common event. Pairs with EventFrameAnim + CharacterSheetScale.RPG Maker's "Select Item" command can only list items. This makes the next Select Item command list weapons instead — reusing its variable storage and wait handling — so events can ask the player to pick a weapon.
Select Weapon (next command)
right before a Select Item command; filter by weapon type and choose whether to include equipped weapons. The chosen ID lands in that command's variable.Lets a battle open fully faded to black so you can play an intro in the dark — messages, an animation, a slow enemy reveal — then bring it up with Fadein Screen. Works around the engine snapping brightness back at battle start.
<Black Start> to any troop page; the
battle opens black. Run your intro, then a Fadein Screen battle command. (Always fade in before the battle can end.)Sets the font size of gauge labels (e.g. "Health", "Willpower") and their value numbers independently, so you can make HP/MP/TP gauges more readable. Optionally grows the gauge's draw area so bigger text doesn't clip.
Label font size and Value font size in
px; leave Grow gauge height to fit on unless it pushes your layout around.Custom fonts can glitch — white specks or overlapping glyphs — when text first draws under load. This pre-rasterizes the font's glyphs at boot (at the sizes and outline width you use) so that first draw is clean.
Font sizes to warm and match the
Outline width to your TextOutlineWidth setting. Pairs well with TextOutlineWidth.Sets modern, intuitive default keyboard bindings instead of MZ's quirky defaults. It only changes the defaults, so players using VisuMZ's rebinding menu can still remap freely.
Gives every keyboard key a readable text label, so VisuMZ's key-rebinding menu shows proper key names ("Space", "Shift", "↑") instead of blanks or raw codes.
Patches a bug in the VisuMZ_1_OptionsCore build shipped with the VisuStella sample project, where the rebind menu rejects every keypress (rows show blank and binding does nothing). This restores rebinding while still forbidding keys that shouldn't be remapped (F1–F12, the Windows key, etc.).
VisuStella Message Core can only show/hide a choice by switch. This adds a JavaScript condition tag to Show Choices, so you can say "show this choice only if the party has item 72" without routing it through a switch first.
<Choice Condition: code> shows the choice only if code is truthy (it rewrites into
Message Core's native hide/disable, so branches still line up). Place below VisuMZ_1_MessageCore.No plugins match that filter.
.js file and drop it into your project's js/plugins/ folder.